package pe.bf.extranet.ejb;

import pe.bf.domain.bean.*;
import pe.bf.domain.exceptions.DomainException;

public class MaestroEJBProxy implements MaestroEJB {
  private String _endpoint = null;
  private MaestroEJB maestroEJB = null;
  
  public MaestroEJBProxy() {
    _initMaestroEJBProxy();
  }
  
  public MaestroEJBProxy(String endpoint) {
    _endpoint = endpoint;
    _initMaestroEJBProxy();
  }
  
  private void _initMaestroEJBProxy() {
    try {
      maestroEJB = (new MaestroEJBServiceLocator()).getMaestroEJBPort();
      if (maestroEJB != null) {
        if (_endpoint != null)
          ((javax.xml.rpc.Stub)maestroEJB)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
        else
          _endpoint = (String)((javax.xml.rpc.Stub)maestroEJB)._getProperty("javax.xml.rpc.service.endpoint.address");
      }
      
    }
    catch (javax.xml.rpc.ServiceException serviceException) {}
  }
  
  public String getEndpoint() {
    return _endpoint;
  }
  
  public void setEndpoint(String endpoint) {
    _endpoint = endpoint;
    if (maestroEJB != null)
      ((javax.xml.rpc.Stub)maestroEJB)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
    
  }
  
  public MaestroEJB getMaestroEJB() {
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB;
  }
  
  public void init() throws java.rmi.RemoteException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    maestroEJB.init();
  }
  
  public TipoDocumento[] findTipoDocumentos() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findTipoDocumentos();
  }
  
  public Distrito[] findDistritos() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findDistritos();
  }
  
  public Empresa[] findEmpresas() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findEmpresas();
  }
  
  public Moneda[] findMonedas() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findMonedas();
  }
  
  public TipoCuenta[] findTipoCuentas() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findTipoCuentas();
  }
  
  public Banco[] findBancos() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findBancos();
  }
  
  public Departamento[] findDepartamento() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findDepartamento();
  }
  
  public Provincia[] findProvincia(java.lang.String arg0) throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findProvincia(arg0);
  }
  
  public Distrito[] findDistrito(java.lang.String arg0) throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findDistrito(arg0);
  }
  
  public Perfil[] findPerfiles() throws java.rmi.RemoteException, DomainException{
    if (maestroEJB == null)
      _initMaestroEJBProxy();
    return maestroEJB.findPerfiles();
  }
  
  
}